package factura.beans;

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.richfaces.component.UIDataTable;

import factura.dao.HibernateUtilDAO;
import factura.modelo.Clientes;

@ManagedBean
@SessionScoped
public class ClienteBean {

	// PROPIEDADES

	private int id_cliente;
	private String nombrerazonsocial;
	private String tipoidentificacion;
	private String numeroidentificacion;
	private String direccion;
	private String telefonoconvencional;
	private String celular;
	private String correo;

	private List<Clientes> lc = new ArrayList<Clientes>();
	private UIDataTable tabCL;

	// FORM EDITAR

	public String editCL() {
		Clientes c = (Clientes) tabCL.getRowData();
		id_cliente = c.getIdCliente();
		nombrerazonsocial = c.getNombrerazonsocial();
		tipoidentificacion = c.getTipoidentificacion();
		numeroidentificacion = c.getNumeroidentificacion();
		direccion = c.getDireccion();
		telefonoconvencional = c.getTelefonoconvencional();
		celular = c.getCelular();
		correo = c.getCorreo();
		return "";

	}

	// GUARDAR EDICION

	public String saveEditCL() {
		Clientes c = new Clientes();
		c.setCelular(celular);
		c.setIdCliente(id_cliente);
		c.setCorreo(correo);
		c.setDireccion(direccion);
		c.setNombrerazonsocial(nombrerazonsocial);
		c.setNumeroidentificacion(numeroidentificacion);
		c.setTelefonoconvencional(telefonoconvencional);
		c.setTipoidentificacion(tipoidentificacion);
		try {
			HibernateUtilDAO.actualizar(c);
		} catch (Exception e) {
			e.getStackTrace();
		}
		return "";
	}

	// BORRAR CLIENTE

	public String delCL() {
		Clientes c = (Clientes) tabCL.getRowData();
		try {
			HibernateUtilDAO.eliminarObjeto(c);
		} catch (Exception e) {
			e.getStackTrace();
		}
		return "";
	}

	// PROPIEDADES1

	private int codcliente1;
	private String nombrerazonsocial1;
	private String tipoidentificacion1;
	private String numeroidentificacion1;
	private String direccion1;
	private String telefonoconvencional1;
	private String celular1;
	private String correo1;
	public int ultimoDato;

	public int getUltimoDato() {
		return ultimoDato;
	}

	public void setUltimoDato(int ultimoDato) {
		this.ultimoDato = ultimoDato;
	}

	private List<Clientes> lc1 = new ArrayList<Clientes>();
	private UIDataTable tabCL1;

	// ADD CLIENTE A UN LIST

	public int ultimodato() {
		int resultado = 0;
		boolean ban = true;
		if (ban == true) {
			if (lc.size() > 0)
				if (lc.size() > 0) {
					Iterator<Clientes> iterator = lc.listIterator();

					while (iterator.hasNext()) {

						Clientes c = (Clientes) iterator.next();
						resultado = c.getIdCliente() + 1;
					}
				}
			ban = false;
			return resultado;
		} else {
			return resultado = resultado + 1;
		}
	}

	Clientes c = new Clientes();
	
	public void cargarCL() { 
		System.out.println("DDDDDDDDDDDDDDDD");
		c.setCelular(getCelular1());
	    c.setCorreo(getCorreo1());
		c.setDireccion(getDireccion1());
		c.setNombrerazonsocial(getNombrerazonsocial1());
		c.setNumeroidentificacion(getNumeroidentificacion1());
		c.setTelefonoconvencional(getTelefonoconvencional1());
		c.setTipoidentificacion(getTipoidentificacion1());
		try {
			HibernateUtilDAO.insertarObjeto(c);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}


	// DEL CLIENTE DE LIST

	public String delCL1() {
		Clientes c = (Clientes) tabCL1.getRowData();
		lc1.remove(c);
		return "";
	}

	// GUARDAR CLIENTES BDD

	public String ingresarCL() {
		try {
			for (int i = 0; i < lc1.size(); i++) {
				HibernateUtilDAO.insertarObjeto(lc1.get(i));
			}
		} catch (Exception e) {
			e.getStackTrace();
		}
		lc1 = new ArrayList<Clientes>();

		return "";
	}

	// GET - SET PROPIEDADES

	public int getIdCliente() {
		return this.id_cliente;
	}

	public void setIdCliente(int codcliente) {
		this.id_cliente = codcliente;
	}

	public String getNombrerazonsocial() {
		return this.nombrerazonsocial;
	}

	public void setNombrerazonsocial(String nombrerazonsocial) {
		this.nombrerazonsocial = nombrerazonsocial;
	}

	public String getTipoidentificacion() {
		return this.tipoidentificacion;
	}

	public void setTipoidentificacion(String tipoidentificacion) {
		this.tipoidentificacion = tipoidentificacion;
	}

	public String getNumeroidentificacion() {
		return this.numeroidentificacion;
	}

	public void setNumeroidentificacion(String numeroidentificacion) {
		this.numeroidentificacion = numeroidentificacion;
	}

	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getTelefonoconvencional() {
		return this.telefonoconvencional;
	}

	public void setTelefonoconvencional(String telefonoconvencional) {
		this.telefonoconvencional = telefonoconvencional;
	}

	public String getCelular() {
		return this.celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	public String getCorreo() {
		return this.correo;
	}

	public void setCorreo(String correo) {
		this.correo = correo;
	}

	public void setLc(List<Clientes> lc) {
		this.lc = lc;
	}

	public List<Clientes> getLc() {
		try {
			lc = HibernateUtilDAO.findAll("Clientes");
		} catch (Exception e) {
			e.getStackTrace();
		}
		return lc;
	}

	public void setTabCL(UIDataTable tabCL) {
		this.tabCL = tabCL;
	}

	public UIDataTable getTabCL() {
		return tabCL;
	}

	/* GET - SET PROPIEDADES1 */

	public int getCodcliente1() {
		return this.codcliente1;
	}

	public void setCodcliente1(int codcliente) {
		this.codcliente1 = codcliente;
	}

	public String getNombrerazonsocial1() {
		return this.nombrerazonsocial1;
	}

	public void setNombrerazonsocial1(String nombrerazonsocial) {
		this.nombrerazonsocial1 = nombrerazonsocial;
	}

	public String getTipoidentificacion1() {
		return this.tipoidentificacion1;
	}

	public void setTipoidentificacion1(String tipoidentificacion) {
		this.tipoidentificacion1 = tipoidentificacion;
	}

	public String getNumeroidentificacion1() {
		return this.numeroidentificacion1;
	}

	public void setNumeroidentificacion1(String numeroidentificacion) {
		this.numeroidentificacion1 = numeroidentificacion;
	}

	public String getDireccion1() {
		return this.direccion1;
	}

	public void setDireccion1(String direccion) {
		this.direccion1 = direccion;
	}

	public String getTelefonoconvencional1() {
		return this.telefonoconvencional1;
	}

	public void setTelefonoconvencional1(String telefonoconvencional) {
		this.telefonoconvencional1 = telefonoconvencional;
	}

	public String getCelular1() {
		return this.celular1;
	}

	public void setCelular1(String celular) {
		this.celular1 = celular;
	}

	public String getCorreo1() {
		return this.correo1;
	}

	public void setCorreo1(String correo) {
		this.correo1 = correo;
	}

	public void setLc1(List<Clientes> lc) {
		this.lc1 = lc;
	}

	public List<Clientes> getLc1() {
		return this.lc1;
	}

	public void setTabCL1(UIDataTable tabCL1) {
		this.tabCL1 = tabCL1;
	}

	public UIDataTable getTabCL1() {
		return tabCL1;
	}
}
